Turing Pi

How to Install Armbian on the Turing RK1 on the Turing Pi board - Boot from MMC

References:
https://codingfield.com/blog/2024-01/install-armbian-and-proxmox-on-orangepi5plus/
https://docs.pxvirt.lierfang.com/en/installfromdebian.html

Download Armbian Releases
Keyword in image filename Turing_RK1 and minimal:
https://github.com/armbian/community/releases/download/26.2.0-trunk.100/Armbian_community_26.2.0-trunk.100_Turing-rk1_trixie_vendor_6.1.115_minimal.img.xz

Extract the image file and flash the turing Pi using the web interface on the correct Node:

[Info 22-12-2025]

Board modelTuring Pi 2 (v2.4)
Hostnameturingpi
Daemon versionv2.3.4
Build time17-1-2025, 18:12:52 (11 months ago)
Build versionv2024.05.1
Buildroot releaseBuildroot 2024.05.1
API versionv1.1
BMC UIv3.3.3

The image is now installed on the mmc of the RK1

Login on the Turin Pi and open an an emulated TTY session to the node:

picocom /dev/ttyS2 -b 115200 # Connect to Node 2, pay attention to the version of your BMC firmware!!

Restart the node using the Turing Pi web interface.

Interrupt the boot in the emulated TTY session by entering any key when the interrups boot message appears.

Set the boot drive to mmc with the following commands:

setenv boot_targets mmc0
boot

Follow Armbian setup instructions during the first boot.

Change Hostname by adjusting the following files:

/etc/hostname
/etc/hosts

Reboot machine

Follow instructions on https://docs.pxvirt.lierfang.com/en/installfromdebian.html

Changed /etc/network/interfaces:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

iface end0 inet manual

auto vmbr0
iface vmbr0 inet static
         address 192.168.1.12/24
         gateway 192.168.1.1
         bridge-ports end0
         bridge-stp off
         bridge-fd 0

1. Add the DNS servers to /etc/systemd/resolved.conf:

[Resolve]
DNS=1.1.1.1 8.8.8.8

2. restart systemd-resolved
systemctl restart systemd-resolved

3. Check your settings with resolvectl status:

$ resolvectl status
Global
         Protocols: -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 1.1.1.1
       DNS Servers: 1.1.1.1 8.8.8.8
        DNS Domain: your.search.domain

Link 2 (ens3)

How to Install Armbian on the Turing RK1 on the Turing Pi board - Boot from NVME

Download Armbian Releases
Keyword in image filename Turing_RK1 and minimal:
https://github.com/armbian/community/releases/download/26.2.0-trunk.100/Armbian_community_26.2.0-trunk.100_Turing-rk1_trixie_vendor_6.1.115_minimal.img.xz

Extract the image file and flash the turing Pi using the web interface on the correct Node:

[Info 22-12-2025]

Board modelTuring Pi 2 (v2.4)
Hostnameturingpi
Daemon versionv2.3.4
Build time17-1-2025, 18:12:52 (11 months ago)
Build versionv2024.05.1
Buildroot releaseBuildroot 2024.05.1
API versionv1.1
BMC UIv3.3.3

The image is now installed on the mmc of the RK1

Login on the Turin Pi and open an an emulated TTY session to the node:

picocom /dev/ttyS2 -b 115200 # Connect to Node 2, pay attention to the version of your BMC firmware!!

Restart the node using the Turing Pi web interface.

Interrupt the boot in the emulated TTY session by entering any key when the interrups boot message appears.

Set the boot drive to mmc with the following commands:

setenv boot_targets mmc0
boot

Follow Armbian setup instructions during the first boot.

After the bash appears:

Download the minimal RK1 Armbian image to the mmc with the following command:

wget https://github.com/armbian/community/releases/download/26.2.0-trunk.100/Armbian_community_26.2.0-trunk.100_Turing-rk1_trixie_vendor_6.1.115_minimal.img.xz

Unzip and copy the image to the nvme drive:

sudo xzcat /root/Armbian_community_26.2.0-trunk.100_Turing-rk1_trixie_vendor_6.1.115_minimal.img/ | sudo dd of=/dev/nvme0n1 bs=1M status=progress

Download the turing-rk1-uboot-only.zip from https://www.nico-maas.de/?p=2669

Unzip the image and use that file to flash the node again.

References:
https://forum.turingpi.com/t/26782959/talos-ubuntu-dual-boot-guide
https://docs.turingpi.com/docs/tpi-uart
https://docs.radxa.com/en/rock3/rock3b/getting-started/install-os/nvme
https://www.nico-maas.de/?p=2669

Install Proxmox for ARM based computers

https://codingfield.com/blog/2024-01/install-armbian-and-proxmox-on-orangepi5plus/

https://github.com/jiangcuo/pxvirt
https://docs.pxvirt.lierfang.com/en/README.html

As per inststructions:

Adjusted /etc/hosts

/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

iface end0 inet manual

auto vmbr0
iface vmbr0 inet static
         address 192.168.1.12/24
         gateway 192.168.1.1
         bridge-ports end0
         bridge-stp off
         bridge-fd 0

/etc/resolv.conf

Change to point to the correct nameserver, default it was pointing to 127.0.0.54

Problem: after install their was no Proxmox webui.

Investigate: checking if the proxmox service was up and running with the following command:

systemctl status pveproxy.service

Result: Service was running, but the following error was shown:

/etc/pve/local/pve-ssl.key: failed to load local private key (key_file or key) at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 2148.

Continue investigation:

The following two commands gave the same  error:

pvenode cert info

pvecm status

Error message:

ipcc_send_rec[1] failed: Connection refused
ipcc_send_rec[2] failed: Connection refused
ipcc_send_rec[3] failed: Connection refused
Unable to load access control list: Connection refused

2 Issues:

1. the hostname was different in /etc/hostname (turing-rk1 instead of pxvirt02)
2. There was still a reference in /etc/hosts to turing-rk1 behind the line starting with "::1"

Rebooted the machine and waited a minute or so. It took some time before the pveproxy.service was started.

Now I could access the Proxmox Web UI.

Install Armbian VM in Proxmox

To Test:

https://docs.pxvirt.lierfang.com/en/setup/Linux-on-port.html

https://www.openeuler.org/en/download/archive/detail/?version=openEuler%2024.03%20LTS%20SP2

VM wouldn't start, showing the following message:

Solution: Define CPU Affinity "0-3" under Proxmox VM Processors [Advanced Settings]

Cause: "To sum up, the problem with booting kvm VMs only happens when a mix of A55 and A76 are enabled. I confirmed that by disabling [0,1,4,5].
With only A76 cores or only A55 cores, booting a kvm VM works." Source: https://github.com/Joshua-Riek/ubuntu-rockchip/issues/731

 

https://forum.proxmox.com/threads/how-to-convert-raspberry-pi-os-images-and-import-to-proxmox.146837/

https://digisden.com/posts/installing-proxmox-on-a-turing-pi-rk1/

apt-get install qemu-utils
wget https://github.com/armbian/community/releases/download/26.2.0-trunk.100/Armbian_community_26.2.0-trunk.100_Turing-rk1_trixie_vendor_6.1.115_minimal.img.xz

Install Docker on Armbian:

https://gist.github.com/serafdev/2914392a6c0a3650cd4b047909544ce7

Install Coral TPU drivers in Armbian

Original Instructions for reference [won't work for Armbian Trixie]: https://www.coral.ai/docs/m2/get-started/#2a-on-linux

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

sudo apt-get update

These instructions will add the respository:

apt-get install ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg| sudo gpg --dearmor -o /etc/apt/keyrings/coral-edgetpu.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/coral-edgetpu.gpg] https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list > /dev/null
sudo apt-get update

Do not run the install command from the Google Install Instruction Page!!! 

Do this instead:

Install Docker on Armbian: https://gist.github.com/serafdev/2914392a6c0a3650cd4b047909544ce7
Install the Gasket driver: https://github.com/jnicolson/gasket-builder

Install the .deb file: sudo apt install ./gasket-dkms_1.0-18_all.deb

But the following install command "sudo apt-get install gasket-dkms libedgetpu1-std" will fail:

=====

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
cpp-14 cpp-14-aarch64-linux-gnu dkms dpkg-dev gcc-14 gcc-14-aarch64-linux-gnu libasan8 libcc1-0 libgcc-14-dev libhwasan0 libisl23 libitm1 liblsan0 libmpc3
libtsan2 libubsan1 linux-headers-6.12.57+deb13-arm64 linux-headers-6.12.57+deb13-common linux-headers-arm64 linux-image-6.12.57+deb13-arm64
linux-kbuild-6.12.57+deb13 make patch
Suggested packages:
gcc-14-locales cpp-14-doc menu debian-keyring debian-tag2upload-keyring gcc-14-doc firmware-linux-free linux-doc-6.12 debian-kernel-handbook make-doc ed
diffutils-doc
Recommended packages:
fakeroot build-essential libalgorithm-merge-perl libc6-dev
The following NEW packages will be installed:
cpp-14 cpp-14-aarch64-linux-gnu dkms dpkg-dev gasket-dkms gcc-14 gcc-14-aarch64-linux-gnu libasan8 libcc1-0 libedgetpu1-std libgcc-14-dev libhwasan0
libisl23 libitm1 liblsan0 libmpc3 libtsan2 libubsan1 linux-headers-6.12.57+deb13-arm64 linux-headers-6.12.57+deb13-common linux-headers-arm64
linux-image-6.12.57+deb13-arm64 linux-kbuild-6.12.57+deb13 make patch
0 upgraded, 25 newly installed, 0 to remove and 7 not upgraded.
Need to get 150 MB of archives.
After this operation, 406 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://deb.debian.org/debian trixie/main arm64 linux-image-6.12.57+deb13-arm64 arm64 6.12.57-1 [92.5 MB]
Get:2 https://packages.cloud.google.com/apt coral-edgetpu-stable/main all gasket-dkms all 1.0-18 [48.0 kB]
Get:3 https://packages.cloud.google.com/apt coral-edgetpu-stable/main arm64 libedgetpu1-std arm64 16.0 [341 kB]
Get:4 http://deb.debian.org/debian trixie/main arm64 libisl23 arm64 0.27-1 [601 kB]
Get:5 http://deb.debian.org/debian trixie/main arm64 libmpc3 arm64 1.3.1-1+b3 [50.5 kB]
Get:6 http://deb.debian.org/debian trixie/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-19 [9,169 kB]
Get:7 http://deb.debian.org/debian trixie/main arm64 cpp-14 arm64 14.2.0-19 [1,276 B]
Get:8 http://deb.debian.org/debian trixie/main arm64 patch arm64 2.8-2 [128 kB]
Get:9 http://deb.debian.org/debian trixie/main arm64 make arm64 4.4.1-2 [452 kB]
Get:10 http://deb.debian.org/debian trixie/main arm64 dpkg-dev all 1.22.21 [1,338 kB]
Get:11 http://deb.debian.org/debian trixie/main arm64 dkms all 3.2.2-1~deb13u1 [60.1 kB]
Get:12 http://deb.debian.org/debian trixie/main arm64 linux-headers-6.12.57+deb13-common all 6.12.57-1 [11.0 MB]
Get:13 http://deb.debian.org/debian trixie/main arm64 linux-kbuild-6.12.57+deb13 arm64 6.12.57-1 [1,544 kB]
Get:14 http://deb.debian.org/debian trixie/main arm64 libcc1-0 arm64 14.2.0-19 [42.2 kB]
Get:15 http://deb.debian.org/debian trixie/main arm64 libitm1 arm64 14.2.0-19 [24.2 kB]
Get:16 http://deb.debian.org/debian trixie/main arm64 libasan8 arm64 14.2.0-19 [2,578 kB]
Get:17 http://deb.debian.org/debian trixie/main arm64 liblsan0 arm64 14.2.0-19 [1,161 kB]
Get:18 http://deb.debian.org/debian trixie/main arm64 libtsan2 arm64 14.2.0-19 [2,383 kB]
Get:19 http://deb.debian.org/debian trixie/main arm64 libubsan1 arm64 14.2.0-19 [1,039 kB]
Get:20 http://deb.debian.org/debian trixie/main arm64 libhwasan0 arm64 14.2.0-19 [1,442 kB]
Get:21 http://deb.debian.org/debian trixie/main arm64 libgcc-14-dev arm64 14.2.0-19 [2,359 kB]
Get:22 http://deb.debian.org/debian trixie/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-19 [17.7 MB]
Get:23 http://deb.debian.org/debian trixie/main arm64 gcc-14 arm64 14.2.0-19 [529 kB]
Get:24 http://deb.debian.org/debian trixie/main arm64 linux-headers-6.12.57+deb13-arm64 arm64 6.12.57-1 [3,076 kB]
Get:25 http://deb.debian.org/debian trixie/main arm64 linux-headers-arm64 arm64 6.12.57-1 [1,420 B]
Fetched 150 MB in 2s (65.7 MB/s)
Selecting previously unselected package linux-image-6.12.57+deb13-arm64.
(Reading database ... 47691 files and directories currently installed.)
Preparing to unpack .../00-linux-image-6.12.57+deb13-arm64_6.12.57-1_arm64.deb ...
Unpacking linux-image-6.12.57+deb13-arm64 (6.12.57-1) ...
Selecting previously unselected package libisl23:arm64.
Preparing to unpack .../01-libisl23_0.27-1_arm64.deb ...
Unpacking libisl23:arm64 (0.27-1) ...
Selecting previously unselected package libmpc3:arm64.
Preparing to unpack .../02-libmpc3_1.3.1-1+b3_arm64.deb ...
Unpacking libmpc3:arm64 (1.3.1-1+b3) ...
Selecting previously unselected package cpp-14-aarch64-linux-gnu.
Preparing to unpack .../03-cpp-14-aarch64-linux-gnu_14.2.0-19_arm64.deb ...
Unpacking cpp-14-aarch64-linux-gnu (14.2.0-19) ...
Selecting previously unselected package cpp-14.
Preparing to unpack .../04-cpp-14_14.2.0-19_arm64.deb ...
Unpacking cpp-14 (14.2.0-19) ...
Selecting previously unselected package patch.
Preparing to unpack .../05-patch_2.8-2_arm64.deb ...
Unpacking patch (2.8-2) ...
Selecting previously unselected package make.
Preparing to unpack .../06-make_4.4.1-2_arm64.deb ...
Unpacking make (4.4.1-2) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../07-dpkg-dev_1.22.21_all.deb ...
Unpacking dpkg-dev (1.22.21) ...
Selecting previously unselected package dkms.
Preparing to unpack .../08-dkms_3.2.2-1~deb13u1_all.deb ...
Unpacking dkms (3.2.2-1~deb13u1) ...
Selecting previously unselected package linux-headers-6.12.57+deb13-common.
Preparing to unpack .../09-linux-headers-6.12.57+deb13-common_6.12.57-1_all.deb ...
Unpacking linux-headers-6.12.57+deb13-common (6.12.57-1) ...
Selecting previously unselected package linux-kbuild-6.12.57+deb13.
Preparing to unpack .../10-linux-kbuild-6.12.57+deb13_6.12.57-1_arm64.deb ...
Unpacking linux-kbuild-6.12.57+deb13 (6.12.57-1) ...
Selecting previously unselected package libcc1-0:arm64.
Preparing to unpack .../11-libcc1-0_14.2.0-19_arm64.deb ...
Unpacking libcc1-0:arm64 (14.2.0-19) ...
Selecting previously unselected package libitm1:arm64.
Preparing to unpack .../12-libitm1_14.2.0-19_arm64.deb ...
Unpacking libitm1:arm64 (14.2.0-19) ...
Selecting previously unselected package libasan8:arm64.
Preparing to unpack .../13-libasan8_14.2.0-19_arm64.deb ...
Unpacking libasan8:arm64 (14.2.0-19) ...
Selecting previously unselected package liblsan0:arm64.
Preparing to unpack .../14-liblsan0_14.2.0-19_arm64.deb ...
Unpacking liblsan0:arm64 (14.2.0-19) ...
Selecting previously unselected package libtsan2:arm64.
Preparing to unpack .../15-libtsan2_14.2.0-19_arm64.deb ...
Unpacking libtsan2:arm64 (14.2.0-19) ...
Selecting previously unselected package libubsan1:arm64.
Preparing to unpack .../16-libubsan1_14.2.0-19_arm64.deb ...
Unpacking libubsan1:arm64 (14.2.0-19) ...
Selecting previously unselected package libhwasan0:arm64.
Preparing to unpack .../17-libhwasan0_14.2.0-19_arm64.deb ...
Unpacking libhwasan0:arm64 (14.2.0-19) ...
Selecting previously unselected package libgcc-14-dev:arm64.
Preparing to unpack .../18-libgcc-14-dev_14.2.0-19_arm64.deb ...
Unpacking libgcc-14-dev:arm64 (14.2.0-19) ...
Selecting previously unselected package gcc-14-aarch64-linux-gnu.
Preparing to unpack .../19-gcc-14-aarch64-linux-gnu_14.2.0-19_arm64.deb ...
Unpacking gcc-14-aarch64-linux-gnu (14.2.0-19) ...
Selecting previously unselected package gcc-14.
Preparing to unpack .../20-gcc-14_14.2.0-19_arm64.deb ...
Unpacking gcc-14 (14.2.0-19) ...
Selecting previously unselected package linux-headers-6.12.57+deb13-arm64.
Preparing to unpack .../21-linux-headers-6.12.57+deb13-arm64_6.12.57-1_arm64.deb ...
Unpacking linux-headers-6.12.57+deb13-arm64 (6.12.57-1) ...
Selecting previously unselected package linux-headers-arm64.
Preparing to unpack .../22-linux-headers-arm64_6.12.57-1_arm64.deb ...
Unpacking linux-headers-arm64 (6.12.57-1) ...
Selecting previously unselected package gasket-dkms.
Preparing to unpack .../23-gasket-dkms_1.0-18_all.deb ...
Unpacking gasket-dkms (1.0-18) ...
Selecting previously unselected package libedgetpu1-std:arm64.
Preparing to unpack .../24-libedgetpu1-std_16.0_arm64.deb ...
Unpacking libedgetpu1-std:arm64 (16.0) ...
Setting up linux-headers-6.12.57+deb13-common (6.12.57-1) ...
Setting up libedgetpu1-std:arm64 (16.0) ...
Setting up make (4.4.1-2) ...
Setting up libmpc3:arm64 (1.3.1-1+b3) ...
Setting up patch (2.8-2) ...
Setting up libubsan1:arm64 (14.2.0-19) ...
Setting up linux-kbuild-6.12.57+deb13 (6.12.57-1) ...
Setting up libhwasan0:arm64 (14.2.0-19) ...
Setting up libasan8:arm64 (14.2.0-19) ...
Setting up libtsan2:arm64 (14.2.0-19) ...
Setting up libisl23:arm64 (0.27-1) ...
Setting up linux-image-6.12.57+deb13-arm64 (6.12.57-1) ...
I: /vmlinuz is now a symlink to boot/vmlinuz-6.12.57+deb13-arm64
I: /initrd.img is now a symlink to boot/initrd.img-6.12.57+deb13-arm64
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-6.12.57+deb13-arm64
update-initramfs: Armbian: Converting to u-boot format: /boot/uInitrd-6.12.57+deb13-arm64
Image Name: uInitrd
Created: Sat Dec 27 01:15:38 2025
Image Type: AArch64 Linux RAMDisk Image (gzip compressed)
Data Size: 41504322 Bytes = 40531.56 KiB = 39.58 MiB
Load Address: 00000000
Entry Point: 00000000
update-initramfs: Armbian: Symlinking /boot/uInitrd-6.12.57+deb13-arm64 to /boot/uInitrd
'/boot/uInitrd' -> 'uInitrd-6.12.57+deb13-arm64'
update-initramfs: Armbian: done.
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
/etc/kernel/postinst.d/zz-proxmox-boot:
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
Setting up libcc1-0:arm64 (14.2.0-19) ...
Setting up liblsan0:arm64 (14.2.0-19) ...
Setting up libitm1:arm64 (14.2.0-19) ...
Setting up dpkg-dev (1.22.21) ...
Setting up dkms (3.2.2-1~deb13u1) ...
Setting up cpp-14-aarch64-linux-gnu (14.2.0-19) ...
Setting up libgcc-14-dev:arm64 (14.2.0-19) ...
Setting up cpp-14 (14.2.0-19) ...
Setting up gcc-14-aarch64-linux-gnu (14.2.0-19) ...
Setting up gcc-14 (14.2.0-19) ...
Setting up linux-headers-6.12.57+deb13-arm64 (6.12.57-1) ...
Setting up linux-headers-arm64 (6.12.57-1) ...
Setting up gasket-dkms (1.0-18) ...
Loading new gasket/1.0 DKMS files...
Deprecated feature: REMAKE_INITRD (/usr/src/gasket-1.0/dkms.conf)
Building for 6.12.57+deb13-arm64

Building initial module gasket/1.0 for 6.12.57+deb13-arm64
Deprecated feature: REMAKE_INITRD (/var/lib/dkms/gasket/1.0/source/dkms.conf)
Sign command: /lib/modules/6.12.57+deb13-arm64/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Certificate or key are missing, generating self signed certificate for MOK...

Building module(s)....(bad exit status: 2)
Failed command:
make -j8 KERNELRELEASE=6.12.57+deb13-arm64 -C /lib/modules/6.12.57+deb13-arm64/build M=/var/lib/dkms/gasket/1.0/build

Error! Bad return status for module build on kernel: 6.12.57+deb13-arm64 (aarch64)
Consult /var/lib/dkms/gasket/1.0/build/make.log for more information.
dpkg: error processing package gasket-dkms (--configure):
installed gasket-dkms package post-installation script subprocess returned error exit status 10
Processing triggers for man-db (2.13.1-1) ...
Processing triggers for libc-bin (2.41-12) ...
Errors were encountered while processing:
gasket-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

=====

Alternative Options:
https://github.com/jnicolson/gasket-builder
Custom Build Armbian: https://codingfield.com/blog/2024-01/install-frigate-in-proxmox-on-orangepi5plus/

Useful Links

https://gitlab.collabora.com/hardware-enablement/rockchip-3588/debian-image-recipes

 

Useful Docker Containers

Dozze: Direct access to console/logs of other containers
Watchtower: Automated update docker containers
Pulse: Monitoring Proxmox and Docker hosts (including alerts and notifications)
Komodo: All in one tool for Container Management
Netdata: Full Monitoring Dashboard (Realtime visability using netdata agent container)
Uptime Kuma: Uptime Monitor
Bitwarden: Local Password Management
Homer: Create Startpage
Mailrise: Translate SMTP to Modern Notification Service (e.g. Discord, Telegram)
Netbox: Network Automation & Documentation
Nginx Proxy Manager: Routing Traffic with Proper SSL termination
phpIPAM: Keep Track of Network Info
Duplicati: Backup Docker Volumes
Pi-Hole: DNS Level Ad-blocking Telemetry 
Gitea: Self-hosted Git Service